#ifndef SRCOMMAND_H
#define SRCOMMAND_H

#include <QString>
#include <QStringList>
#include <QList>
#include "SRSettings.h"
#include "SRCommandArgument.h"

class SRCommand
{
public:
	SRCommand();
	SRCommand(QString c);
	~SRCommand();
	QString toString();
	QString getName();
	QList<SRCommandArgumentInterface*> getArguments();
	SRCommandArgumentInterface* getArgument(int i);
	void setName(QString name);
	int argumentCount();
	void addArgument(QString argumentName, QStringList values);
	void addArgument(QStringList values);
	void addArgument(SRCommandArgumentInterface *arg);

	static bool isCommand(QString s);

	// characters part of command strings
	static QChar commandSeparator;
	static QChar commandNameSeparator;
	static QChar commandArgumentSeparator;
	static QChar commandArgumentNameSeparator;
	static QChar commandArgumentValueSeparator;
	static QChar packageStopByte;

private:
	QString commandName;
	QList<SRCommandArgumentInterface*> commandArguments;
};

#endif
